package cn.com.dashihui.kit;

import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;

import com.jfinal.core.Const;
import com.jfinal.kit.HttpKit;
import com.jfinal.kit.Prop;

import net.sf.json.JSONObject;

/**
 * 发短信工具类，调用的是“聚合数据”网接口（http://www.juhe.cn/）
 * 需要事先在“聚合”网上添加相应的短信模板，并通过审核才可使用
 * @author duxikun
 */
public class SMSKit {
	private static Logger logger = Logger.getLogger(SMSKit.class);
	
	private static boolean isDebug(){
		Prop prop = new Prop("realtime.properties",Const.DEFAULT_ENCODING);
		return prop.getBoolean("debug.sms", true);
	}
	
	/**
	 * 注册时，发送短信验证码
	 * @param msisdn 手机号
	 * @param code 验证码
	 */
	public static boolean sendRegCode(String msisdn, String code){
		if(!isDebug()){
			Map<String, String> params = new HashMap<String, String>();
			params.put("sdst", msisdn);
			//模板ID
			params.put("sname", "dljxzy02");
			params.put("spwd", "dljxzy021");
			params.put("sprdid", "1012888");
			params.put("smsg", "您的注册验证码是："+code+",请妥善保管验证码，不要泄露给他人！【亿品供应链】");
//			params.put("key", "");
			logger.info("向手机号"+msisdn+"发送注册验证码短信："+code);
			String resultStr = HttpKit.get("http://api.51welink.com/json/sms/g_Submit",params);
			JSONObject result = JSONObject.fromObject(resultStr);
			logger.info("向手机号"+msisdn+"发送注册验证码短信返回结果："+resultStr);
			return result.getInt("State")==0;
		}else{
			logger.info("向手机号"+msisdn+"发送注册验证码短信："+code);
			return true;
		}
	}
	
	/**
	 * 找回密码时，发送短信验证码
	 * @param msisdn 手机号
	 * @param code 验证码
	 */
	public static boolean sendFindPwdCode(String msisdn, String code){
		if(!isDebug()){
			Map<String, String> params = new HashMap<String, String>();
			params.put("sdst", msisdn);
			//模板ID
			params.put("sname", "dljxzy02");
			params.put("spwd", "dljxzy021");
			params.put("sprdid", "1012888");
			params.put("smsg", "您的验证码是："+code+",请妥善保管验证码，不要泄露给他人！【亿品供应链】");
//			params.put("key", "");
			logger.info("向手机号"+msisdn+"发送找回密码时验证码短信："+code);
			String resultStr = HttpKit.get("http://api.51welink.com/json/sms/g_Submit",params);
			JSONObject result = JSONObject.fromObject(resultStr);
			logger.info("向手机号"+msisdn+"发送找回密码时验证码短信返回结果："+resultStr);
			return result.getInt("State")==0;
		}else{
			logger.info("向手机号"+msisdn+"发送找回密码时验证码短信："+code);
			return true;
		}
	}
}
